home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1994 November / macformat-018.iso / Utility Spectacular / Text / Extension Dev. Kit / Extension Sources / Interfaces / ExternalInterface.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-07-24  |  2.4 KB  |  71 lines  |  [TEXT/R*ch]

  1. #pragma once
  2.  
  3. typedef struct
  4. {
  5.     short    version;
  6.     
  7.     //    version 1 callbacks
  8.     
  9.     pascal    Handle     (*GetWindowContents)(WindowPtr w);
  10.     pascal    void    (*GetSelection)(long *selStart, long *selEnd, long *firstChar);
  11.     pascal    void    (*SetSelection)(long selStart, long selEnd, long firstChar);
  12.     pascal    void    (*GetDocInfo)(WindowPtr w, Str255 fName, short *vRefNum, long *dirID);
  13.     pascal    long    (*GetModDate)(WindowPtr w);
  14.     pascal    Handle    (*Copy)(void);
  15.     pascal    void    (*Paste)(Handle pasteText);
  16.     
  17.     //    version 2 callbacks
  18.     
  19.     /*    Text-Editing stuff */
  20.     pascal    long        (*GetLastLine)(void);
  21.     pascal    long        (*GetLineNumber)(long selection);
  22.     pascal    long        (*GetLineStart)(long selection);
  23.     pascal    long        (*GetLineEnd)(long selection);
  24.     pascal    long        (*GetLinePos)(long line);
  25.     
  26.     pascal    void        (*Insert)(char *text, long len);
  27.     pascal    void        (*Delete)(void);
  28.     
  29.     /*    Getting and Setting window text */
  30.     pascal    void        (*SetWindowContents)(WindowPtr w, Handle h);
  31.     pascal    void        (*ContentsChanged)(WindowPtr w);
  32.     
  33.     /*    Reading file text */
  34.     pascal    Handle        (*GetFileText)(short vRefNum, long dirID, Str255 fName, Boolean *canDispose);
  35.  
  36.     /*    Direct user-interface calls */
  37.     pascal    Boolean        (*GetFolder)(Str255 prompt, short *vRefNum, long *dirID);
  38.     pascal    Boolean        (*OpenSeveral)(Boolean sort, short *file_count, StandardFileReply ***files);
  39.     
  40.     pascal    DialogPtr    (*CenterDialog)(short dialogID);
  41.     pascal    Boolean        (*StandardFilter)(DialogPtr d, EventRecord *event, short *item);
  42.     pascal    void        (*FrameDialogItem)(DialogPtr d, short item);
  43.     
  44.     pascal    WindowPtr    (*NewDocument)(void);
  45.     pascal    WindowPtr    (*OpenDocument)(void);
  46.  
  47.     /*    Utility Routines */
  48.     pascal    Handle        (*Allocate)(long size, Boolean clear);
  49.     pascal    long        (*FindPattern)(char *text, long text_len, long text_offset, 
  50.                                         char *pat, long pat_len,
  51.                                         Boolean case_sensitive);
  52.     
  53.     pascal    void        (*ReportOSError)(short code);
  54.     
  55.     /*    Preference routines */
  56.     pascal    void        (*GetPreference)(ResType prefType, short req_len, void *buffer, short *act_len);
  57.     pascal    void        (*SetPreference)(ResType prefType, short req_len, void *buffer, short *act_len);
  58.  
  59.     /*    Progress routines */
  60.     pascal    void        (*StartProgress)(Str255 str, long total, Boolean cancel_allowed);
  61.     pascal    Boolean        (*DoProgress)(long done);
  62.     pascal    void        (*DoneProgress)(void);
  63. } ExternalCallbackBlock;
  64.  
  65. /*    
  66.     'main' for a BBXT is declared:
  67.     
  68. pascal void main(ExternalCallbackBlock *callbacks, WindowPtr w);        [C]
  69. procedure Main(callbacks : ExternalCallbackBlock; w : WindowPtr);        [Pascal]
  70. */
  71.